package com.xqboss.apps.domain.equipment;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xqboss.apps.domain.BaseTable;
import com.xqboss.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 装备信息
 * @author Trent
 * @date 2023/8/16
 */
@Data
public class Equipment extends BaseTable {

    @TableId
    private Long id;

    /**
     * 是否已经打开
     */
    private Boolean isOpen;
    /**
     * 装备属性模板
     */
    private Long equipmentAttrTemplateId;
    ///////////////配置属性////////////////
    /**
     * 收益折算系数
     */
    private BigDecimal incomeRatio;
    /**
     * 维修系数
     */
//    private BigDecimal maintainRatio;
    /**
     * 耐久消耗系数
     */
//    private BigDecimal durabilityRatio;
    /**
     * 破损系数
     */
    private BigDecimal breakageRatio;



    /**
     * 藏品ID
     */
    private Long nftId;
    /**
     * 藏品编号ID
     */
    private Long nftNumberId;
    /**
     * 耐久度
     */
    private BigDecimal durability;
    /**
     * 稀有度
     */
    private Integer rarity;
    /**
     * 破损度
     */
    private BigDecimal breakage;
    /**
     * 总耐久度
     */
    private BigDecimal totalDurability;
    /**
     * 总破损度
     */
    private BigDecimal totalBreakage;

    ////////////以下为装备基础属性值////////////////
    /**
     * 装备等级
     */
    private Integer level;
    /**
     * 总属性点数
     */
    private Integer totalAttrCount;
    /**
     * 剩余加点数
     */
    private Integer remainAttrCount;
    /**
     * 幸运值
     */
    private Integer luck;
    /**
     * 天赋值
     */
    private Integer talent;
    /**
     * 耐久值
     */
    private Integer durable;
    /**
     * 坚固值
     */
    private Integer strong;


    /**
     * 总打卡收益
     */
    private BigDecimal totalIncome;
    /**
     * 当前等级收益
     */
    private BigDecimal levelIncome;
    /**
     * 当前经验值
     */
    @ApiModelProperty("当前经验值")
    private BigDecimal currentExp;

    @ApiModelProperty("最大经验值")
    @TableField(exist = false)
    private BigDecimal maxExp;

    @ApiModelProperty("剩余空投")
    @TableField(exist = false)
    private BigDecimal remainingAirdrop;

    public BigDecimal getMaxExp() {
        return totalBreakage;
    }
}
